<?php

// page header, and any additional required libraries
require_once 'header.php';
// minimum permission to view page
valid_login($action_permission['read']);

//#############################################################################
// EVENTS
//#############################################################################
function events()
{
global $output, $lang_events,
$realm_id, $world_db,
$itemperpage;
$sqlw = new SQL;
$sqlw->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']);

//-------------------SQL Injection Prevention--------------------------------
// this page has multipage support and field ordering, so we need these
$start = (isset($_GET['start'])) ? $sqlw->quote_smart($_GET['start']) : 0;
if (is_numeric($start)); else $start=0;

$order_by = (isset($_GET['order_by'])) ? $sqlw->quote_smart($_GET['order_by']) : 'description';
if (preg_match('/^[_[:lower:]]{1,11}$/', $order_by)); else $order_by='description';

$dir = (isset($_GET['dir'])) ? $sqlw->quote_smart($_GET['dir']) : 1;
if (preg_match('/^[01]{1}$/', $dir)); else $dir=1;

$order_dir = ($dir) ? 'ASC' : 'DESC';
$dir = ($dir) ? 0 : 1;

// for multipage support
$all_record = $sqlw->result($sqlw->query('SELECT count(*) FROM game_event WHERE start_time <> end_time'),0);

// main data that we need for this page, game events
$result = $sqlw->query('SELECT description, start_time, occurence, length
FROM game_event WHERE start_time <> end_time ORDER BY '.$order_by.' '.$order_dir.' LIMIT '.$start.', '.$itemperpage.'');

//---------------Page Specific Data Starts Here--------------------------
// we start with a lead of 10 spaces,
//  because last line of header is an opening tag with 8 spaces
//  keep html indent in sync, so debuging from browser source would be easy to read
$output .= '
<!-- start of events.php -->
<center>
	<table class="top_hidden">
		<tr>
			<td width="25%" align="right">';

			// multi page links
			$output .=
			$lang_events['total'].' : '.$all_record.'<br /><br />'.
			generate_pagination('events.php?order_by='.$order_by.'&amp;dir='.(($dir) ? 0 : 1), $all_record, $itemperpage, $start);

			// column headers, with links for sorting
			$output .= '
			</td>
		</tr>
	</table>
	<table class="lined">
		<tr>
			<th width="35%"><a href="events.php?order_by=description&amp;start='.$start.'&amp;dir='.$dir.'"'.($order_by==='description' ? ' class="'.$order_dir.'"' : '').'>'.$lang_events['descr'].'</a></th>
			<th width="25%"><a href="events.php?order_by=start_time&amp;start='.$start.'&amp;dir='.$dir.'"'.($order_by==='start_time' ? ' class="'.$order_dir.'"' : '').'>'.$lang_events['start'].'</a></th>
			<th width="20%"><a href="events.php?order_by=occurence&amp;start='.$start.'&amp;dir='.$dir.'"'.($order_by==='occurence' ? ' class="'.$order_dir.'"' : '').'>'.$lang_events['occur'].'</a></th>
			<th width="20%"><a href="events.php?order_by=length&amp;start='.$start.'&amp;dir='.$dir.'"'.($order_by==='length' ? ' class="'.$order_dir.'"' : '').'>'.$lang_events['length'].'</a></th>
		</tr>';

		while ($events = $sqlw->fetch_assoc($result))
		{
			$days  = floor(round($events['occurence'] / 60) / 24);
			$hours = round($events['occurence'] / 60) - ($days * 24);
			$event_occurance = '';
			if ($days)
				$event_occurance .= $days.' days ';
			if ($hours)
				$event_occurance .= $hours.' hours';
			$days  = floor(round($events['length'] / 60) / 24);
			$hours = round($events['length'] / 60) - ($days * 24);
			$event_duration = '';
			if ($days)
				$event_duration .= $days.' days ';
			if ($hours)
				$event_duration .= $hours.' hours';
			$output .= '
			<tr valign="top">
				<td align="left">'.$events['description'].'</td>
				<td>'.$events['start_time'].'</td>
				<td>'.$event_occurance.'</td>
				<td>'.$event_duration.'</td>
			</tr>';
		}
unset($event_duration);
unset($event_occurance);
unset($hours);
unset($days);
unset($events);
unset($result);

$output .= '
<tr>
	<td colspan="4" class="hidden" align="right" width="25%">';
	// multi page links
	$output .= generate_pagination('events.php?order_by='.$order_by.'&amp;dir='.(($dir) ? 0 : 1), $all_record, $itemperpage, $start);
	unset($start);
	$output .= '
	</td>
</tr>
<tr>
	<td colspan="4" class="hidden" align="right">'.$lang_events['total'].' : '.$all_record.'</td>
</tr>
</table>
</center>
<!-- end of events.php -->';
}
//#############################################################################
// MAIN
//#############################################################################
// error variable reserved for future use
//$err = (isset($_GET['error'])) ? $_GET['error'] : NULL;

//unset($err);

$lang_events = lang_events();

$output .= '
<div class="top">
	<h1>'.$lang_events['events'].'</h1>
</div>';

// action variable reserved for future use
//$action = (isset($_GET['action'])) ? $_GET['action'] : NULL;

events();

//unset($action);
unset($action_permission);
unset($lang_events);

require_once 'footer.php';

?>
